package com.yjq.programmer.service;

import com.yjq.programmer.dto.AlbumDTO;
import com.yjq.programmer.dto.PageDTO;
import com.yjq.programmer.dto.ResponseDTO;

import java.util.List;

/**
 * @author 杨杨吖
 * @QQ 823208782
 * @WX yjqi12345678
 * @create 2022-11-14 8:58
 */
public interface IAlbumService {

    // 分页获取专辑数据
    ResponseDTO<PageDTO<AlbumDTO>> getAlbumListByPage(PageDTO<AlbumDTO> pageDTO);

    // 保存专辑数据(添加、修改)
    ResponseDTO<Boolean> saveAlbum(AlbumDTO albumDTO);

    // 删除专辑数据
    ResponseDTO<Boolean> removeAlbum(AlbumDTO albumDTO);

    // 获取全部专辑数据
    ResponseDTO<List<AlbumDTO>> getAllAlbum();

    // 根据专辑分类id获取专辑数据
    ResponseDTO<List<AlbumDTO>> getAlbumByCategoryId(AlbumDTO albumDTO);

    // 根据id获取专辑数据
    ResponseDTO<AlbumDTO> getById(AlbumDTO albumDTO);

    // 搜索专辑数据
    ResponseDTO<List<AlbumDTO>> searchAlbum(AlbumDTO albumDTO);

    // 专辑浏览量增加
    ResponseDTO<Boolean> addAlbumView(AlbumDTO albumDTO);

    // 获取热门专辑数据
    ResponseDTO<List<AlbumDTO>> getHotAlbumList(PageDTO<AlbumDTO> pageDTO);

    // 获取专辑的总数
    ResponseDTO<Integer> getAlbumTotal();
}
